/*
* 为应用程序创建一个类
* */

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/*
*   注解分析：
*
*    @SpringBootApplication：注释修饰类，说明类是主启动类
*    @Configuration: 将类标记为应用程序上下文的bean定义源
*    @EnableAutoConfiguration: 用于自动配置（项目配置文件pom.xml）
*    @ComponentScan: 基于注解的类扫描 ———— 用于进行包扫描，检查类是否使用 @Controller、@Service等注解，有则获取这些类创建对应的bean对象，注册到spring容器
*
* */
@SpringBootApplication
public class AccessingDataMysqlApplication {

    public static void main(String[] args) {

        /*
        *   run()做了2件事：
        *   1. 利用构造方法创建SpringApplication对象：在对象初始化时保存事件监听器，容器初始化类和判断是否为web应用，保存包含main方法的主配置类
        *   2. 调用SpringApplication实例的run方法：准备spring的上下文，完成容器的初始化、创建、加载等，会在不同时机出发监听器的不同事件
        * */

        SpringApplication.run(AccessingDataMysqlApplication.class, args);
    }

}